package com.mentalhealth.diary.common;

import lombok.Getter;

/**
 * 自定义业务异常类
 * 用于处理业务逻辑中的异常情况
 */
@Getter
public class BusinessException extends RuntimeException {
    
    /**
     * 错误状态码
     */
    private final int code;
    
    /**
     * 构造方法
     * @param code 错误状态码
     * @param message 错误消息
     */
    public BusinessException(int code, String message) {
        super(message);
        this.code = code;
    }
    
    /**
     * 构造方法（默认状态码500）
     * @param message 错误消息
     */
    public BusinessException(String message) {
        this(500, message);
    }
    
    /**
     * 构造方法（带异常原因）
     * @param code 错误状态码
     * @param message 错误消息
     * @param cause 异常原因
     */
    public BusinessException(int code, String message, Throwable cause) {
        super(message, cause);
        this.code = code;
    }
}